{
 "cells": [
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-02T07:12:06.482227Z",
     "start_time": "2025-08-02T07:12:06.478903Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import tensorflow as tf\n",
    "import numpy as np"
   ],
   "id": "2a66597aaf6d0373",
   "outputs": [],
   "execution_count": 7
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-02T07:12:06.503720Z",
     "start_time": "2025-08-02T07:12:06.499326Z"
    }
   },
   "cell_type": "code",
   "source": "tf.__version__",
   "id": "5e750d25b1f58b28",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'2.19.0'"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 8
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-02T07:12:06.515239Z",
     "start_time": "2025-08-02T07:12:06.510728Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 设置随机种子以确保结果可复现\n",
    "np.random.seed(42)\n",
    "\n",
    "# 创建一些模拟数据\n",
    "x_train = np.linspace(-1, 1, 101)\n",
    "y_train = 2 * x_train - 1 + np.random.randn(*x_train.shape) * 0.3"
   ],
   "id": "de49124dce92a72b",
   "outputs": [],
   "execution_count": 9
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-02T07:12:06.660995Z",
     "start_time": "2025-08-02T07:12:06.546253Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.figure(figsize = (10, 6))\n",
    "plt.plot(x_train, y_train, 'ro')"
   ],
   "id": "56594191dbec7a58",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1fde4354dd0>]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ],
      "image/png": "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+oURZpxfZ3F+ncX5dRbn11mcX2dxfp3F+Y3G+S3NUCky0XwBAAAAQOQRjAAAAABEHsHIYcXFxTJ//nzjGvbj/DqL8+sszq+zOL/O4vw6i/PrLM6vs4oDen5D13wBAAAAAHJFxQgAAABA5BGMAAAAAEQewQgAAABA5BGMAAAAAEQewQgAAABA5BGMCnTLLbfIhAkTpE+fPtK3b9+sHqONAOfNmyeHHHKI9O7dWyZNmiQffPBB0j7btm2TCy64wFgtWL/ujBkzZMeOHRI1uZ6HpqYmKSoqsrw8/vjjHftZ3f/oo49K1OTzOquqqup07i677LKkfTZt2iSnnXaa8XNx8MEHy9VXXy3ffvutRE2u51f3v/LKK+Xwww833hsOPfRQ+Y//+A9pbW1N2i+qr9977rlHKisrpVevXjJu3Dh54403utxff+ZHjhxp7D9q1Ch57rnncn4vjpJczu+vf/1r+f73vy/f+c53jIueu9T9p0+f3ul1OmXKFImyXM7x4sWLO50/fVwiXsP5n1+r32V60d9dJl7DcS+//LKcfvrpMmjQIOMcPPnkk5JJQ0ODHHfccUa77hEjRhiv50Lf012h7bqRv3nz5sX++7//O3bVVVfFSktLs3rML37xC2PfJ598MvbXv/41dsYZZ8SGDh0a+/rrrzv2mTJlSuyYY46Jvfbaa7E//vGPsREjRsSmTZsWi5pcz8O3334b++STT5IuN954Y+yAAw6IffXVVx376Uv/t7/9bdJ+iec/KvJ5nZ100kmxSy65JOnctba2Jv0bHHXUUbFJkybF3nrrrdhzzz0X69+/f2zu3LmxqMn1/L7zzjuxs846K/b000/HNm7cGFu9enXssMMOi5199tlJ+0Xx9fvoo4/GevbsGXvwwQdj7733nvEa7Nu3b2zr1q2W+7/yyiux7t27x2699dbY3/72t9j1118f22+//YxznMt7cVTken5ra2tj99xzj/Ez/v7778emT59unMvNmzd37HPRRRcZPwOJr9Nt27bFoirXc6w/4yUlJUnnb8uWLUn78BrO//x+8cUXSef23XffNd4z9LybeA3H6e/x//zP/4ytWLHC+P3zxBNPxLry97//PdanTx/js7G+/951113GuV25cmXe/15uIRjZRH+QsglG+/bti5WVlcVuu+22jm3bt2+PFRcXx5YtW2bc1heRvvDefPPN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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 10
  },
  {
   "cell_type": "code",
   "id": "initial_id",
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2025-08-02T07:12:11.869720Z",
     "start_time": "2025-08-02T07:12:06.674923Z"
    }
   },
   "source": [
    "# 定义模型 - 使用 Input 层\n",
    "model = tf.keras.models.Sequential([\n",
    "    tf.keras.layers.Input(shape=(1,)),  # 明确指定输入形状\n",
    "    tf.keras.layers.Dense(1)            # 第一个 Dense 层不再需要 input_shape\n",
    "])\n",
    "\n",
    "# 编译模型\n",
    "model.compile(optimizer='sgd', loss='mse')\n",
    "\n",
    "# 训练模型\n",
    "history = model.fit(x_train, y_train, epochs=100, verbose=0)\n",
    "\n",
    "# 使用模型进行预测\n",
    "X_new = np.array([[0.5]])\n",
    "y_predict = model.predict(X_new)"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[1m1/1\u001B[0m \u001B[32m━━━━━━━━━━━━━━━━━━━━\u001B[0m\u001B[37m\u001B[0m \u001B[1m0s\u001B[0m 48ms/step\n"
     ]
    }
   ],
   "execution_count": 11
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-02T07:12:11.881891Z",
     "start_time": "2025-08-02T07:12:11.876726Z"
    }
   },
   "cell_type": "code",
   "source": "print(f\"当x=0.5时，模型预测的y值为：{y_predict[0][0]}\")",
   "id": "1e3191c5d8dd3fa0",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "当x=0.5时，模型预测的y值为：-0.06946516036987305\n"
     ]
    }
   ],
   "execution_count": 12
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
